package com.biz.primus.model.order.vo.aftersale;

import com.biz.primus.model.order.enums.AuditState;
import com.biz.primus.model.order.enums.ReturnState;
import com.biz.primus.model.order.enums.ReturnType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.persistence.Column;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

/**
 * 退货订单响应模型
 *
 * @author Tiger Feng
 * @date 2017年11月20日
 */
@Data
@NoArgsConstructor
@ApiModel("退货(售后)申请订单响应模型")
public class ReturnOrderResponseVO implements Serializable {
    private static final long serialVersionUID = -7549441975310148997L;

    @ApiModelProperty(value = "商品项", required = true)
    private List<ReturnOrderItemResponseVO> items;

    @ApiModelProperty(value = "订单编号", required = true)
    private String orderCode;
    @ApiModelProperty(value = "门店编号(退货门店)", required = true)
    private String depotCode;
    // 门店收货人
    @Column(length = 32)
    private String depotConsignee;
    // 门店联系电话
    @Column(length = 32)
    private String depotTelephone;
    // 门店完整地址
    @Column
    private String depotAddress;
    // 门店邮政编码
    @Column(length = 16)
    private String depotZipCode;

    @ApiModelProperty(
            value = "退货(售后)类型",
            required = true,
            notes = "\"REFUND_AND_SALES_RETURN\":\"退款并退货\",\"REFUND_AND_NO_RETURN\":\"退款不退货\"")
    private ReturnType returnType;
    @ApiModelProperty(value = "退货(售后)用户问题描述")
    private String returnUserDescription;
    @ApiModelProperty("退货(售后)用户上传图片列表，最多3张")
    private List<String> returnUserImages;
    @ApiModelProperty(value = "退货单状态",
            notes = "\"DISAGREE\":\"审核未通过\",\"AUDITING\":\"审核中\",\"REFUNDED\":\"已退款\",\"CANCELED\":\"已取消\",\"WAIT_REFUND\":\"待退款\",\"RETURNING\":\"退货中\"")
    private ReturnState returnState;

    @ApiModelProperty(value = "酒库审核状态(未审核、通过、未通过)",
            notes = "\"DISAGREE\":\"未通过\",\"UNAUDITED\":\"未审核\",\"AGREE\":\"通过\"")
    private AuditState auditState;
    @ApiModelProperty("审核时间")
    private Timestamp auditTimestamp;

    @ApiModelProperty("退货物流公司")
    private String expressName;
    @ApiModelProperty("退货物流单号")
    private String expressNumber;
    @ApiModelProperty("退货说明：")
    private String expressDescription;
    @ApiModelProperty("用户上传凭证图片,最多3张")
    private List<String> expressUserImages;

    /*@ApiModelProperty("退换货仓库")
    private DepotRespVo depot;*/
}
